In [1]:
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import os
import sys
from six.moves import cPickle as pickle
%matplotlib inline


/home/josh/anaconda2/envs/tensorflow/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')

Read the training data


In [2]:
#pickle_file = 'train.pickle'
'''
with open(pickle_file, 'rb') as f:
    save = pickle.load(f)
    train_X_1 = save['data']
    train_outcome_1 = save['outcome']
    del save  # hint to help gc free up memory
'''
    
pickle_file = 'train2.pickle'

with open(pickle_file, 'rb') as f:
    save = pickle.load(f)
    train_X_0 = save['data']
    train_outcome_0 = save['outcome']
    del save  # hint to help gc free up memory
    
'''
pickle_file = 'test.pickle'

with open(pickle_file, 'rb') as f:
    save = pickle.load(f)
    test_X_1 = save['data']
    test_outcome_1 = save['outcome']
    del save  # hint to help gc free up memory
    
'''

pickle_file = 'test2.pickle'

with open(pickle_file, 'rb') as f:
    save = pickle.load(f)
    test_X_0 = save['data']
    test_outcome_0 = save['outcome']
    del save  # hint to help gc free up memory

In [3]:
#reformat the label
#for each digit, add a 'end_digit' as '10'
#for each label, add a digit size
#each of them is a one-hot coding

def label_reformat(label, max_size = 5):
    digit_size = np.asarray([len(x) for x in label])
    digit_size[digit_size > max_size]= max_size
    digit_size = ((np.arange(max_size)+1) == digit_size[:,None]).astype(np.float32)
    
    digits = {}
    end_digit = 10.0
    for i in range(max_size):
        digit_coding = np.asarray( [x[i] if len(x)>i else end_digit for x in label])
        digit_coding = (np.arange(end_digit+1) == digit_coding[:,None]).astype(np.float32)
        digits['digit_'+ str(i)] = digit_coding
        
    return digit_size, digits

sample a smaller data


In [4]:
#train_X_0 = np.vstack((train_X_1 ,train_X_2 ))

In [5]:
train_X_0.shape


Out[5]:
(33402, 64, 64, 3)

In [6]:
#train_X_0 = np.vstack((train_X_1 ,train_X_2 ))

image_size = train_X_0.shape[1]
num_channels = train_X_0.shape[3]
batch_size = 200
val_size = 50
test_size = 50


#train_label = train_outcome_1['label'] +  train_outcome_2['label']
train_label = train_outcome_0['label']
train_digit_size, train_digits = label_reformat(train_label)
train_X = train_X_0


val_label = test_outcome_0['label']
val_digit_size, val_digits = label_reformat(val_label)
val_X = test_X_0

val_size = val_X.shape[0]

In [7]:
print train_digit_size.shape
print train_digits['digit_0'].shape
print train_X.shape


(33402, 5)
(33402, 11)
(33402, 64, 64, 3)

In [8]:
plt.imshow(train_X[0,:,:,:])
plt.show()
print train_digits['digit_0'][0]
print train_digits['digit_1'][0]


[ 0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.]

In [9]:
plt.imshow(val_X[1,:,:,:])
plt.show()
print val_digits['digit_0'][1]
print val_digits['digit_1'][1]


[ 0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.]
[ 0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]

start tensorflow session


In [10]:
def next_batch(X, y_dsize, y_ds, batch_size=50, replace = True):
    idx = np.random.choice(X.shape[0],batch_size, replace = replace)
    batch_x = X[idx,:,:,:]
    batch_y_dsize = y_dsize[idx,:]
    batch_y_d1 = y_ds['digit_0'][idx,:]
    batch_y_d2 = y_ds['digit_1'][idx,:]
    batch_y_d3 = y_ds['digit_2'][idx,:]
    batch_y_d4 = y_ds['digit_3'][idx,:]
    batch_y_d5 = y_ds['digit_4'][idx,:]
    
    return batch_x, batch_y_dsize, batch_y_d1, batch_y_d2, batch_y_d3, batch_y_d4, batch_y_d5

In [13]:
graph = tf.Graph()
with graph.as_default():
    
    def weight_variable(shape):
        initial = tf.truncated_normal(shape, stddev=0.1)
        return tf.Variable(initial)

    def bias_variable(shape):
        initial = tf.constant(0.1, shape=shape)
        return tf.Variable(initial)

    def conv2d(x, W):
        return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
        return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
    
    x_image = tf.placeholder(tf.float32, shape=(batch_size, image_size, image_size, num_channels))

    y_d1 = tf.placeholder(tf.float32, shape=(batch_size, 11))
    y_d2 = tf.placeholder(tf.float32, shape=(batch_size, 11))
    y_d3 = tf.placeholder(tf.float32, shape=(batch_size, 11))
    y_d4 = tf.placeholder(tf.float32, shape=(batch_size, 11))
    y_d5 = tf.placeholder(tf.float32, shape=(batch_size, 11))

    y_dsize = tf.placeholder(tf.float32, shape=(batch_size, 5))
    
    val_x_image = tf.placeholder(tf.float32, shape=(val_size, image_size, image_size, num_channels))

    val_y_d1 = tf.placeholder(tf.float32, shape=(val_size, 11))
    val_y_d2 = tf.placeholder(tf.float32, shape=(val_size, 11))
    val_y_d3 = tf.placeholder(tf.float32, shape=(val_size, 11))
    val_y_d4 = tf.placeholder(tf.float32, shape=(val_size, 11))
    val_y_d5 = tf.placeholder(tf.float32, shape=(val_size, 11))

    val_y_dsize = tf.placeholder(tf.float32, shape=(val_size, 5))

    test_x_image = tf.placeholder(tf.float32, shape=(test_size, image_size, image_size, num_channels))

    test_y_d1 = tf.placeholder(tf.float32, shape=(test_size, 11))
    test_y_d2 = tf.placeholder(tf.float32, shape=(test_size, 11))
    test_y_d3 = tf.placeholder(tf.float32, shape=(test_size, 11))
    test_y_d4 = tf.placeholder(tf.float32, shape=(test_size, 11))
    test_y_d5 = tf.placeholder(tf.float32, shape=(test_size, 11))

    test_y_dsize = tf.placeholder(tf.float32, shape=(test_size, 5))
    
    
    W_conv1 = weight_variable([5, 5, num_channels, 32])
    b_conv1 = bias_variable([32])

    h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
    h_pool1 = max_pool_2x2(h_conv1)
    
    
    W_conv2 = weight_variable([5, 5, 32, 64])
    b_conv2 = bias_variable([64])

    h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
    h_pool2 = max_pool_2x2(h_conv2)
    
    W_fc1 = weight_variable([16 * 16 * 64, 1024])
    b_fc1 = bias_variable([1024])

    h_pool2_flat = tf.reshape(h_pool2, [-1, 16*16*64])
    h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)
    
    #W_conv3 = weight_variable([5, 5, 64, 256])
    #b_conv3 = bias_variable([256])

    #h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)
    #h_pool3 = max_pool_2x2(h_conv3)
    
    #W_fc1 = weight_variable([8 * 8 * 256, 1024])
    #b_fc1 = bias_variable([1024])

    #h_pool3_flat = tf.reshape(h_pool3, [-1, 8*8*256])
    #h_fc1 = tf.nn.relu(tf.matmul(h_pool3_flat, W_fc1) + b_fc1)
    
    keep_prob = tf.placeholder(tf.float32)
    h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)
    
    
    #first digit
    W_fc2_d1 = weight_variable([1024, 11])
    b_fc2_d1 = bias_variable([11])

    y_conv_d1 = tf.matmul(h_fc1_drop, W_fc2_d1) + b_fc2_d1

    #second digit
    W_fc2_d2 = weight_variable([1024, 11])
    b_fc2_d2 = bias_variable([11])

    y_conv_d2 = tf.matmul(h_fc1_drop, W_fc2_d2) + b_fc2_d2

    #third digit
    W_fc2_d3 = weight_variable([1024, 11])
    b_fc2_d3 = bias_variable([11])

    y_conv_d3 = tf.matmul(h_fc1_drop, W_fc2_d3) + b_fc2_d3

    #fourth digit
    W_fc2_d4 = weight_variable([1024, 11])
    b_fc2_d4 = bias_variable([11])

    y_conv_d4 = tf.matmul(h_fc1_drop, W_fc2_d4) + b_fc2_d4

    #fifth digit
    W_fc2_d5 = weight_variable([1024, 11])
    b_fc2_d5 = bias_variable([11])

    y_conv_d5 = tf.matmul(h_fc1_drop, W_fc2_d5) + b_fc2_d5

    #digit size
    W_fc2_dsize = weight_variable([1024, 5])
    b_fc2_dsize = bias_variable([5])

    y_conv_dsize = tf.matmul(h_fc1_drop, W_fc2_dsize) + b_fc2_dsize

    
    cross_entropy = ( tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_d1, y_d1)) 
                     + tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_d2, y_d2))
                     + tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_d3, y_d3))
                     + tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_d4, y_d4))
                     + tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_d5, y_d5))
                     + tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv_dsize, y_dsize))
                     )

    train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
    
    
    #let's just check the first digit
    #correct_prediction = tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) 
    correct_prediction = ( tf.cast( tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) , tf.float32) 
                          * tf.cast( tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) , tf.float32)
                          * tf.cast( tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) , tf.float32)
                          * tf.cast( tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) , tf.float32)
                          * tf.cast( tf.equal(tf.argmax(y_conv_d1,1), tf.argmax(y_d1,1)) , tf.float32)
                          )
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

Train model on a small data, see whether it overfit

if overfit, then good. If not, check bugs.


In [21]:
num_steps = 50000
summary_frequency = 50


tr_acc, ts_acc = [], []

with tf.Session(graph=graph) as session:

    tf.initialize_all_variables().run()
    print('Initialized')

    for i in range(num_steps):
        (batch_x, batch_y_dsize, 
         batch_y_d1, batch_y_d2, 
         batch_y_d3, batch_y_d4, batch_y_d5) = next_batch(train_X, 
                                                          train_digit_size, 
                                                          train_digits, batch_size)
        feed_dict={
                x_image: batch_x, y_dsize: batch_y_dsize,
                y_d1: batch_y_d1, y_d2: batch_y_d2, y_d3: batch_y_d3,
                y_d4: batch_y_d4, y_d5: batch_y_d5,
                keep_prob: 0.5}
        
        session.run(train_step,feed_dict=feed_dict)
    
        if i%summary_frequency == 0:
            train_accuracy = accuracy.eval(feed_dict=feed_dict)
            print("step %d, training accuracy %g"%(i, train_accuracy))
            tr_acc.append(train_accuracy)
        
        #if i%(summary_frequency*10) ==0:
            (batch_x, batch_y_dsize, 
             batch_y_d1, batch_y_d2, 
             batch_y_d3, batch_y_d4, batch_y_d5) = next_batch(val_X, 
                                                              val_digit_size, 
                                                              val_digits, batch_size)
            val_accuracy = accuracy.eval(feed_dict={
                        x_image: batch_x, y_dsize: batch_y_dsize,
                        y_d1: batch_y_d1, y_d2: batch_y_d2, y_d3: batch_y_d3,
                        y_d4: batch_y_d4, y_d5: batch_y_d5,
                        keep_prob: 1.0})
            ts_acc.append(val_accuracy)
            print("step %d, val accuracy %g"%(i, val_accuracy))
        
tr_acc, ts_acc = np.array(tr_acc), np.array(ts_acc)


Initialized
step 0, training accuracy 0.125
step 0, val accuracy 0.105
step 50, training accuracy 0.235
step 50, val accuracy 0.27
step 100, training accuracy 0.22
step 100, val accuracy 0.27
step 150, training accuracy 0.24
step 150, val accuracy 0.325
step 200, training accuracy 0.25
step 200, val accuracy 0.27
step 250, training accuracy 0.27
step 250, val accuracy 0.32
step 300, training accuracy 0.24
step 300, val accuracy 0.36
step 350, training accuracy 0.27
step 350, val accuracy 0.3
step 400, training accuracy 0.26
step 400, val accuracy 0.3
step 450, training accuracy 0.29
step 450, val accuracy 0.305
step 500, training accuracy 0.285
step 500, val accuracy 0.29
step 550, training accuracy 0.26
step 550, val accuracy 0.405
step 600, training accuracy 0.335
step 600, val accuracy 0.395
step 650, training accuracy 0.315
step 650, val accuracy 0.355
step 700, training accuracy 0.285
step 700, val accuracy 0.34
step 750, training accuracy 0.39
step 750, val accuracy 0.375
step 800, training accuracy 0.275
step 800, val accuracy 0.38
step 850, training accuracy 0.34
step 850, val accuracy 0.395
step 900, training accuracy 0.395
step 900, val accuracy 0.33
step 950, training accuracy 0.39
step 950, val accuracy 0.445
step 1000, training accuracy 0.385
step 1000, val accuracy 0.47
step 1050, training accuracy 0.45
step 1050, val accuracy 0.46
step 1100, training accuracy 0.46
step 1100, val accuracy 0.44
step 1150, training accuracy 0.485
step 1150, val accuracy 0.435
step 1200, training accuracy 0.4
step 1200, val accuracy 0.54
step 1250, training accuracy 0.45
step 1250, val accuracy 0.52
step 1300, training accuracy 0.445
step 1300, val accuracy 0.515
step 1350, training accuracy 0.475
step 1350, val accuracy 0.585
step 1400, training accuracy 0.52
step 1400, val accuracy 0.52
step 1450, training accuracy 0.52
step 1450, val accuracy 0.6
step 1500, training accuracy 0.48
step 1500, val accuracy 0.59
step 1550, training accuracy 0.535
step 1550, val accuracy 0.525
step 1600, training accuracy 0.525
step 1600, val accuracy 0.58
step 1650, training accuracy 0.595
step 1650, val accuracy 0.56
step 1700, training accuracy 0.6
step 1700, val accuracy 0.625
step 1750, training accuracy 0.545
step 1750, val accuracy 0.575
step 1800, training accuracy 0.555
step 1800, val accuracy 0.59
step 1850, training accuracy 0.595
step 1850, val accuracy 0.635
step 1900, training accuracy 0.545
step 1900, val accuracy 0.63
step 1950, training accuracy 0.635
step 1950, val accuracy 0.655
step 2000, training accuracy 0.6
step 2000, val accuracy 0.64
step 2050, training accuracy 0.615
step 2050, val accuracy 0.65
step 2100, training accuracy 0.635
step 2100, val accuracy 0.7
step 2150, training accuracy 0.685
step 2150, val accuracy 0.665
step 2200, training accuracy 0.665
step 2200, val accuracy 0.685
step 2250, training accuracy 0.59
step 2250, val accuracy 0.625
step 2300, training accuracy 0.675
step 2300, val accuracy 0.645
step 2350, training accuracy 0.69
step 2350, val accuracy 0.67
step 2400, training accuracy 0.66
step 2400, val accuracy 0.69
step 2450, training accuracy 0.64
step 2450, val accuracy 0.655
step 2500, training accuracy 0.67
step 2500, val accuracy 0.665
step 2550, training accuracy 0.635
step 2550, val accuracy 0.685
step 2600, training accuracy 0.695
step 2600, val accuracy 0.665
step 2650, training accuracy 0.69
step 2650, val accuracy 0.725
step 2700, training accuracy 0.675
step 2700, val accuracy 0.68
step 2750, training accuracy 0.655
step 2750, val accuracy 0.71
step 2800, training accuracy 0.595
step 2800, val accuracy 0.68
step 2850, training accuracy 0.69
step 2850, val accuracy 0.695
step 2900, training accuracy 0.75
step 2900, val accuracy 0.74
step 2950, training accuracy 0.725
step 2950, val accuracy 0.765
step 3000, training accuracy 0.725
step 3000, val accuracy 0.7
step 3050, training accuracy 0.705
step 3050, val accuracy 0.75
step 3100, training accuracy 0.7
step 3100, val accuracy 0.67
step 3150, training accuracy 0.71
step 3150, val accuracy 0.745
step 3200, training accuracy 0.695
step 3200, val accuracy 0.76
step 3250, training accuracy 0.75
step 3250, val accuracy 0.76
step 3300, training accuracy 0.685
step 3300, val accuracy 0.71
step 3350, training accuracy 0.715
step 3350, val accuracy 0.72
step 3400, training accuracy 0.715
step 3400, val accuracy 0.755
step 3450, training accuracy 0.73
step 3450, val accuracy 0.72
step 3500, training accuracy 0.765
step 3500, val accuracy 0.745
step 3550, training accuracy 0.745
step 3550, val accuracy 0.72
step 3600, training accuracy 0.735
step 3600, val accuracy 0.785
step 3650, training accuracy 0.76
step 3650, val accuracy 0.71
step 3700, training accuracy 0.73
step 3700, val accuracy 0.775
step 3750, training accuracy 0.77
step 3750, val accuracy 0.75
step 3800, training accuracy 0.775
step 3800, val accuracy 0.715
step 3850, training accuracy 0.765
step 3850, val accuracy 0.77
step 3900, training accuracy 0.775
step 3900, val accuracy 0.75
step 3950, training accuracy 0.785
step 3950, val accuracy 0.725
step 4000, training accuracy 0.76
step 4000, val accuracy 0.785
step 4050, training accuracy 0.745
step 4050, val accuracy 0.715
step 4100, training accuracy 0.735
step 4100, val accuracy 0.77
step 4150, training accuracy 0.795
step 4150, val accuracy 0.73
step 4200, training accuracy 0.715
step 4200, val accuracy 0.76
step 4250, training accuracy 0.805
step 4250, val accuracy 0.77
step 4300, training accuracy 0.74
step 4300, val accuracy 0.775
step 4350, training accuracy 0.81
step 4350, val accuracy 0.755
step 4400, training accuracy 0.74
step 4400, val accuracy 0.74
step 4450, training accuracy 0.775
step 4450, val accuracy 0.77
step 4500, training accuracy 0.82
step 4500, val accuracy 0.78
step 4550, training accuracy 0.77
step 4550, val accuracy 0.835
step 4600, training accuracy 0.84
step 4600, val accuracy 0.74
step 4650, training accuracy 0.825
step 4650, val accuracy 0.75
step 4700, training accuracy 0.785
step 4700, val accuracy 0.77
step 4750, training accuracy 0.805
step 4750, val accuracy 0.775
step 4800, training accuracy 0.785
step 4800, val accuracy 0.775
step 4850, training accuracy 0.78
step 4850, val accuracy 0.73
step 4900, training accuracy 0.77
step 4900, val accuracy 0.76
step 4950, training accuracy 0.815
step 4950, val accuracy 0.79
step 5000, training accuracy 0.81
step 5000, val accuracy 0.78
step 5050, training accuracy 0.815
step 5050, val accuracy 0.795
step 5100, training accuracy 0.77
step 5100, val accuracy 0.755
step 5150, training accuracy 0.78
step 5150, val accuracy 0.805
step 5200, training accuracy 0.82
step 5200, val accuracy 0.815
step 5250, training accuracy 0.78
step 5250, val accuracy 0.76
step 5300, training accuracy 0.82
step 5300, val accuracy 0.79
step 5350, training accuracy 0.885
step 5350, val accuracy 0.82
step 5400, training accuracy 0.805
step 5400, val accuracy 0.78
step 5450, training accuracy 0.76
step 5450, val accuracy 0.755
step 5500, training accuracy 0.845
step 5500, val accuracy 0.795
step 5550, training accuracy 0.845
step 5550, val accuracy 0.82
step 5600, training accuracy 0.835
step 5600, val accuracy 0.78
step 5650, training accuracy 0.8
step 5650, val accuracy 0.76
step 5700, training accuracy 0.795
step 5700, val accuracy 0.82
step 5750, training accuracy 0.775
step 5750, val accuracy 0.805
step 5800, training accuracy 0.775
step 5800, val accuracy 0.805
step 5850, training accuracy 0.815
step 5850, val accuracy 0.785
step 5900, training accuracy 0.82
step 5900, val accuracy 0.78
step 5950, training accuracy 0.815
step 5950, val accuracy 0.785
step 6000, training accuracy 0.795
step 6000, val accuracy 0.74
step 6050, training accuracy 0.845
step 6050, val accuracy 0.78
step 6100, training accuracy 0.82
step 6100, val accuracy 0.785
step 6150, training accuracy 0.855
step 6150, val accuracy 0.815
step 6200, training accuracy 0.87
step 6200, val accuracy 0.79
step 6250, training accuracy 0.87
step 6250, val accuracy 0.78
step 6300, training accuracy 0.87
step 6300, val accuracy 0.825
step 6350, training accuracy 0.88
step 6350, val accuracy 0.8
step 6400, training accuracy 0.81
step 6400, val accuracy 0.835
step 6450, training accuracy 0.82
step 6450, val accuracy 0.81
step 6500, training accuracy 0.835
step 6500, val accuracy 0.825
step 6550, training accuracy 0.855
step 6550, val accuracy 0.77
step 6600, training accuracy 0.87
step 6600, val accuracy 0.79
step 6650, training accuracy 0.82
step 6650, val accuracy 0.825
step 6700, training accuracy 0.88
step 6700, val accuracy 0.735
step 6750, training accuracy 0.885
step 6750, val accuracy 0.775
step 6800, training accuracy 0.885
step 6800, val accuracy 0.8
step 6850, training accuracy 0.865
step 6850, val accuracy 0.81
step 6900, training accuracy 0.85
step 6900, val accuracy 0.81
step 6950, training accuracy 0.83
step 6950, val accuracy 0.795
step 7000, training accuracy 0.88
step 7000, val accuracy 0.785
step 7050, training accuracy 0.84
step 7050, val accuracy 0.76
step 7100, training accuracy 0.845
step 7100, val accuracy 0.75
step 7150, training accuracy 0.855
step 7150, val accuracy 0.765
step 7200, training accuracy 0.865
step 7200, val accuracy 0.815
step 7250, training accuracy 0.855
step 7250, val accuracy 0.8
step 7300, training accuracy 0.855
step 7300, val accuracy 0.8
step 7350, training accuracy 0.865
step 7350, val accuracy 0.785
step 7400, training accuracy 0.855
step 7400, val accuracy 0.82
step 7450, training accuracy 0.875
step 7450, val accuracy 0.78
step 7500, training accuracy 0.875
step 7500, val accuracy 0.77
step 7550, training accuracy 0.855
step 7550, val accuracy 0.805
step 7600, training accuracy 0.865
step 7600, val accuracy 0.83
step 7650, training accuracy 0.905
step 7650, val accuracy 0.815
step 7700, training accuracy 0.875
step 7700, val accuracy 0.83
step 7750, training accuracy 0.89
step 7750, val accuracy 0.845
step 7800, training accuracy 0.875
step 7800, val accuracy 0.825
step 7850, training accuracy 0.86
step 7850, val accuracy 0.78
step 7900, training accuracy 0.84
step 7900, val accuracy 0.775
step 7950, training accuracy 0.88
step 7950, val accuracy 0.815
step 8000, training accuracy 0.89
step 8000, val accuracy 0.795
step 8050, training accuracy 0.84
step 8050, val accuracy 0.81
step 8100, training accuracy 0.89
step 8100, val accuracy 0.82
step 8150, training accuracy 0.87
step 8150, val accuracy 0.77
step 8200, training accuracy 0.89
step 8200, val accuracy 0.8
step 8250, training accuracy 0.9
step 8250, val accuracy 0.82
step 8300, training accuracy 0.845
step 8300, val accuracy 0.815
step 8350, training accuracy 0.88
step 8350, val accuracy 0.81
step 8400, training accuracy 0.895
step 8400, val accuracy 0.81
step 8450, training accuracy 0.875
step 8450, val accuracy 0.805
step 8500, training accuracy 0.85
step 8500, val accuracy 0.805
step 8550, training accuracy 0.88
step 8550, val accuracy 0.775
step 8600, training accuracy 0.91
step 8600, val accuracy 0.815
step 8650, training accuracy 0.87
step 8650, val accuracy 0.795
step 8700, training accuracy 0.915
step 8700, val accuracy 0.795
step 8750, training accuracy 0.87
step 8750, val accuracy 0.79
step 8800, training accuracy 0.85
step 8800, val accuracy 0.805
step 8850, training accuracy 0.885
step 8850, val accuracy 0.805
step 8900, training accuracy 0.9
step 8900, val accuracy 0.835
step 8950, training accuracy 0.86
step 8950, val accuracy 0.795
step 9000, training accuracy 0.905
step 9000, val accuracy 0.79
step 9050, training accuracy 0.895
step 9050, val accuracy 0.84
step 9100, training accuracy 0.89
step 9100, val accuracy 0.78
step 9150, training accuracy 0.885
step 9150, val accuracy 0.735
step 9200, training accuracy 0.895
step 9200, val accuracy 0.865
step 9250, training accuracy 0.87
step 9250, val accuracy 0.83
step 9300, training accuracy 0.905
step 9300, val accuracy 0.83
step 9350, training accuracy 0.86
step 9350, val accuracy 0.81
step 9400, training accuracy 0.87
step 9400, val accuracy 0.835
step 9450, training accuracy 0.93
step 9450, val accuracy 0.81
step 9500, training accuracy 0.875
step 9500, val accuracy 0.795
step 9550, training accuracy 0.915
step 9550, val accuracy 0.775
step 9600, training accuracy 0.89
step 9600, val accuracy 0.79
step 9650, training accuracy 0.86
step 9650, val accuracy 0.795
step 9700, training accuracy 0.88
step 9700, val accuracy 0.8
step 9750, training accuracy 0.915
step 9750, val accuracy 0.805
step 9800, training accuracy 0.875
step 9800, val accuracy 0.79
step 9850, training accuracy 0.91
step 9850, val accuracy 0.825
step 9900, training accuracy 0.895
step 9900, val accuracy 0.82
step 9950, training accuracy 0.92
step 9950, val accuracy 0.815
step 10000, training accuracy 0.9
step 10000, val accuracy 0.78
step 10050, training accuracy 0.925
step 10050, val accuracy 0.78
step 10100, training accuracy 0.915
step 10100, val accuracy 0.85
step 10150, training accuracy 0.91
step 10150, val accuracy 0.8
step 10200, training accuracy 0.905
step 10200, val accuracy 0.8
step 10250, training accuracy 0.915
step 10250, val accuracy 0.835
step 10300, training accuracy 0.9
step 10300, val accuracy 0.855
step 10350, training accuracy 0.86
step 10350, val accuracy 0.825
step 10400, training accuracy 0.925
step 10400, val accuracy 0.845
step 10450, training accuracy 0.915
step 10450, val accuracy 0.79
step 10500, training accuracy 0.9
step 10500, val accuracy 0.85
step 10550, training accuracy 0.915
step 10550, val accuracy 0.85
step 10600, training accuracy 0.93
step 10600, val accuracy 0.855
step 10650, training accuracy 0.93
step 10650, val accuracy 0.74
step 10700, training accuracy 0.875
step 10700, val accuracy 0.795
step 10750, training accuracy 0.935
step 10750, val accuracy 0.81
step 10800, training accuracy 0.945
step 10800, val accuracy 0.875
step 10850, training accuracy 0.92
step 10850, val accuracy 0.84
step 10900, training accuracy 0.94
step 10900, val accuracy 0.855
step 10950, training accuracy 0.945
step 10950, val accuracy 0.79
step 11000, training accuracy 0.92
step 11000, val accuracy 0.82
step 11050, training accuracy 0.92
step 11050, val accuracy 0.79
step 11100, training accuracy 0.895
step 11100, val accuracy 0.8
step 11150, training accuracy 0.92
step 11150, val accuracy 0.84
step 11200, training accuracy 0.91
step 11200, val accuracy 0.84
step 11250, training accuracy 0.89
step 11250, val accuracy 0.805
step 11300, training accuracy 0.925
step 11300, val accuracy 0.805
step 11350, training accuracy 0.9
step 11350, val accuracy 0.795
step 11400, training accuracy 0.93
step 11400, val accuracy 0.765
step 11450, training accuracy 0.95
step 11450, val accuracy 0.865
step 11500, training accuracy 0.9
step 11500, val accuracy 0.845
step 11550, training accuracy 0.94
step 11550, val accuracy 0.865
step 11600, training accuracy 0.915
step 11600, val accuracy 0.795
step 11650, training accuracy 0.925
step 11650, val accuracy 0.845
step 11700, training accuracy 0.915
step 11700, val accuracy 0.855
step 11750, training accuracy 0.945
step 11750, val accuracy 0.845
step 11800, training accuracy 0.94
step 11800, val accuracy 0.835
step 11850, training accuracy 0.935
step 11850, val accuracy 0.81
step 11900, training accuracy 0.945
step 11900, val accuracy 0.805
step 11950, training accuracy 0.92
step 11950, val accuracy 0.785
step 12000, training accuracy 0.905
step 12000, val accuracy 0.875
step 12050, training accuracy 0.955
step 12050, val accuracy 0.85
step 12100, training accuracy 0.93
step 12100, val accuracy 0.835
step 12150, training accuracy 0.92
step 12150, val accuracy 0.775
step 12200, training accuracy 0.945
step 12200, val accuracy 0.86
step 12250, training accuracy 0.93
step 12250, val accuracy 0.88
step 12300, training accuracy 0.93
step 12300, val accuracy 0.77
step 12350, training accuracy 0.915
step 12350, val accuracy 0.77
step 12400, training accuracy 0.94
step 12400, val accuracy 0.81
step 12450, training accuracy 0.945
step 12450, val accuracy 0.835
step 12500, training accuracy 0.92
step 12500, val accuracy 0.77
step 12550, training accuracy 0.92
step 12550, val accuracy 0.845
step 12600, training accuracy 0.945
step 12600, val accuracy 0.8
step 12650, training accuracy 0.96
step 12650, val accuracy 0.8
step 12700, training accuracy 0.94
step 12700, val accuracy 0.8
step 12750, training accuracy 0.92
step 12750, val accuracy 0.83
step 12800, training accuracy 0.94
step 12800, val accuracy 0.81
step 12850, training accuracy 0.965
step 12850, val accuracy 0.78
step 12900, training accuracy 0.94
step 12900, val accuracy 0.87
step 12950, training accuracy 0.915
step 12950, val accuracy 0.855
step 13000, training accuracy 0.935
step 13000, val accuracy 0.765
step 13050, training accuracy 0.91
step 13050, val accuracy 0.79
step 13100, training accuracy 0.965
step 13100, val accuracy 0.86
step 13150, training accuracy 0.945
step 13150, val accuracy 0.855
step 13200, training accuracy 0.95
step 13200, val accuracy 0.885
step 13250, training accuracy 0.95
step 13250, val accuracy 0.78
step 13300, training accuracy 0.96
step 13300, val accuracy 0.87
step 13350, training accuracy 0.925
step 13350, val accuracy 0.825
step 13400, training accuracy 0.925
step 13400, val accuracy 0.88
step 13450, training accuracy 0.945
step 13450, val accuracy 0.8
step 13500, training accuracy 0.96
step 13500, val accuracy 0.835
step 13550, training accuracy 0.95
step 13550, val accuracy 0.805
step 13600, training accuracy 0.955
step 13600, val accuracy 0.84
step 13650, training accuracy 0.915
step 13650, val accuracy 0.82
step 13700, training accuracy 0.935
step 13700, val accuracy 0.815
step 13750, training accuracy 0.935
step 13750, val accuracy 0.89
step 13800, training accuracy 0.98
step 13800, val accuracy 0.84
step 13850, training accuracy 0.93
step 13850, val accuracy 0.825
step 13900, training accuracy 0.91
step 13900, val accuracy 0.815
step 13950, training accuracy 0.94
step 13950, val accuracy 0.835
step 14000, training accuracy 0.95
step 14000, val accuracy 0.785
step 14050, training accuracy 0.935
step 14050, val accuracy 0.83
step 14100, training accuracy 0.935
step 14100, val accuracy 0.84
step 14150, training accuracy 0.955
step 14150, val accuracy 0.845
step 14200, training accuracy 0.945
step 14200, val accuracy 0.86
step 14250, training accuracy 0.975
step 14250, val accuracy 0.77
step 14300, training accuracy 0.94
step 14300, val accuracy 0.845
step 14350, training accuracy 0.95
step 14350, val accuracy 0.8
step 14400, training accuracy 0.93
step 14400, val accuracy 0.85
step 14450, training accuracy 0.96
step 14450, val accuracy 0.805
step 14500, training accuracy 0.975
step 14500, val accuracy 0.84
step 14550, training accuracy 0.95
step 14550, val accuracy 0.85
step 14600, training accuracy 0.97
step 14600, val accuracy 0.78
step 14650, training accuracy 0.935
step 14650, val accuracy 0.835
step 14700, training accuracy 0.96
step 14700, val accuracy 0.81
step 14750, training accuracy 0.935
step 14750, val accuracy 0.83
step 14800, training accuracy 0.91
step 14800, val accuracy 0.825
step 14850, training accuracy 0.96
step 14850, val accuracy 0.79
step 14900, training accuracy 0.96
step 14900, val accuracy 0.835
step 14950, training accuracy 0.94
step 14950, val accuracy 0.805
step 15000, training accuracy 0.925
step 15000, val accuracy 0.795
step 15050, training accuracy 0.955
step 15050, val accuracy 0.835
step 15100, training accuracy 0.955
step 15100, val accuracy 0.805
step 15150, training accuracy 0.97
step 15150, val accuracy 0.82
step 15200, training accuracy 0.965
step 15200, val accuracy 0.795
step 15250, training accuracy 0.95
step 15250, val accuracy 0.79
step 15300, training accuracy 0.925
step 15300, val accuracy 0.825
step 15350, training accuracy 0.945
step 15350, val accuracy 0.82
step 15400, training accuracy 0.925
step 15400, val accuracy 0.87
step 15450, training accuracy 0.945
step 15450, val accuracy 0.84
step 15500, training accuracy 0.96
step 15500, val accuracy 0.755
step 15550, training accuracy 0.955
step 15550, val accuracy 0.78
step 15600, training accuracy 0.945
step 15600, val accuracy 0.825
step 15650, training accuracy 0.95
step 15650, val accuracy 0.805
step 15700, training accuracy 0.96
step 15700, val accuracy 0.775
step 15750, training accuracy 0.935
step 15750, val accuracy 0.82
step 15800, training accuracy 0.935
step 15800, val accuracy 0.81
step 15850, training accuracy 0.98
step 15850, val accuracy 0.85
step 15900, training accuracy 0.96
step 15900, val accuracy 0.82
step 15950, training accuracy 0.955
step 15950, val accuracy 0.82
step 16000, training accuracy 0.91
step 16000, val accuracy 0.795
step 16050, training accuracy 0.96
step 16050, val accuracy 0.845
step 16100, training accuracy 0.965
step 16100, val accuracy 0.8
step 16150, training accuracy 0.95
step 16150, val accuracy 0.82
step 16200, training accuracy 0.95
step 16200, val accuracy 0.81
step 16250, training accuracy 0.955
step 16250, val accuracy 0.795
step 16300, training accuracy 0.95
step 16300, val accuracy 0.805
step 16350, training accuracy 0.97
step 16350, val accuracy 0.755
step 16400, training accuracy 0.96
step 16400, val accuracy 0.79
step 16450, training accuracy 0.955
step 16450, val accuracy 0.86
step 16500, training accuracy 0.98
step 16500, val accuracy 0.795
step 16550, training accuracy 0.92
step 16550, val accuracy 0.81
step 16600, training accuracy 0.97
step 16600, val accuracy 0.805
step 16650, training accuracy 0.96
step 16650, val accuracy 0.82
step 16700, training accuracy 0.95
step 16700, val accuracy 0.79
step 16750, training accuracy 0.965
step 16750, val accuracy 0.83
step 16800, training accuracy 0.965
step 16800, val accuracy 0.88
step 16850, training accuracy 0.945
step 16850, val accuracy 0.855
step 16900, training accuracy 0.965
step 16900, val accuracy 0.77
step 16950, training accuracy 0.96
step 16950, val accuracy 0.8
step 17000, training accuracy 0.945
step 17000, val accuracy 0.83
step 17050, training accuracy 0.96
step 17050, val accuracy 0.835
step 17100, training accuracy 0.96
step 17100, val accuracy 0.775
step 17150, training accuracy 0.975
step 17150, val accuracy 0.79
step 17200, training accuracy 0.955
step 17200, val accuracy 0.83
step 17250, training accuracy 0.97
step 17250, val accuracy 0.82
step 17300, training accuracy 0.955
step 17300, val accuracy 0.78
step 17350, training accuracy 0.955
step 17350, val accuracy 0.84
step 17400, training accuracy 0.97
step 17400, val accuracy 0.83
step 17450, training accuracy 0.975
step 17450, val accuracy 0.82
step 17500, training accuracy 0.94
step 17500, val accuracy 0.84
step 17550, training accuracy 0.97
step 17550, val accuracy 0.855
step 17600, training accuracy 0.97
step 17600, val accuracy 0.845
step 17650, training accuracy 0.945
step 17650, val accuracy 0.795
step 17700, training accuracy 0.945
step 17700, val accuracy 0.77
step 17750, training accuracy 0.965
step 17750, val accuracy 0.805
step 17800, training accuracy 0.94
step 17800, val accuracy 0.86
step 17850, training accuracy 0.965
step 17850, val accuracy 0.835
step 17900, training accuracy 0.955
step 17900, val accuracy 0.83
step 17950, training accuracy 0.97
step 17950, val accuracy 0.785
step 18000, training accuracy 0.955
step 18000, val accuracy 0.83
step 18050, training accuracy 0.95
step 18050, val accuracy 0.825
step 18100, training accuracy 0.965
step 18100, val accuracy 0.76
step 18150, training accuracy 0.945
step 18150, val accuracy 0.79
step 18200, training accuracy 0.975
step 18200, val accuracy 0.87
step 18250, training accuracy 0.965
step 18250, val accuracy 0.8
step 18300, training accuracy 0.975
step 18300, val accuracy 0.795
step 18350, training accuracy 0.965
step 18350, val accuracy 0.845
step 18400, training accuracy 0.985
step 18400, val accuracy 0.81
step 18450, training accuracy 0.97
step 18450, val accuracy 0.81
step 18500, training accuracy 0.96
step 18500, val accuracy 0.86
step 18550, training accuracy 0.965
step 18550, val accuracy 0.785
step 18600, training accuracy 0.945
step 18600, val accuracy 0.755
step 18650, training accuracy 0.97
step 18650, val accuracy 0.79
step 18700, training accuracy 0.965
step 18700, val accuracy 0.86
step 18750, training accuracy 0.96
step 18750, val accuracy 0.845
step 18800, training accuracy 0.96
step 18800, val accuracy 0.84
step 18850, training accuracy 0.95
step 18850, val accuracy 0.845
step 18900, training accuracy 0.955
step 18900, val accuracy 0.805
step 18950, training accuracy 0.965
step 18950, val accuracy 0.825
step 19000, training accuracy 0.98
step 19000, val accuracy 0.82
step 19050, training accuracy 0.965
step 19050, val accuracy 0.83
step 19100, training accuracy 0.94
step 19100, val accuracy 0.83
step 19150, training accuracy 0.975
step 19150, val accuracy 0.835
step 19200, training accuracy 0.955
step 19200, val accuracy 0.84
step 19250, training accuracy 0.99
step 19250, val accuracy 0.795
step 19300, training accuracy 0.97
step 19300, val accuracy 0.78
step 19350, training accuracy 0.975
step 19350, val accuracy 0.84
step 19400, training accuracy 0.985
step 19400, val accuracy 0.855
step 19450, training accuracy 0.975
step 19450, val accuracy 0.84
step 19500, training accuracy 0.975
step 19500, val accuracy 0.825
step 19550, training accuracy 0.975
step 19550, val accuracy 0.84
step 19600, training accuracy 0.955
step 19600, val accuracy 0.85
step 19650, training accuracy 0.96
step 19650, val accuracy 0.85
step 19700, training accuracy 0.985
step 19700, val accuracy 0.82
step 19750, training accuracy 0.95
step 19750, val accuracy 0.815
step 19800, training accuracy 0.965
step 19800, val accuracy 0.78
step 19850, training accuracy 0.99
step 19850, val accuracy 0.815
step 19900, training accuracy 0.99
step 19900, val accuracy 0.82
step 19950, training accuracy 0.98
step 19950, val accuracy 0.83
step 20000, training accuracy 0.96
step 20000, val accuracy 0.83
step 20050, training accuracy 0.97
step 20050, val accuracy 0.83
step 20100, training accuracy 0.97
step 20100, val accuracy 0.82
step 20150, training accuracy 0.965
step 20150, val accuracy 0.8
step 20200, training accuracy 0.97
step 20200, val accuracy 0.84
step 20250, training accuracy 0.98
step 20250, val accuracy 0.77
step 20300, training accuracy 0.985
step 20300, val accuracy 0.805
step 20350, training accuracy 0.955
step 20350, val accuracy 0.81
step 20400, training accuracy 0.98
step 20400, val accuracy 0.825
step 20450, training accuracy 0.96
step 20450, val accuracy 0.805
step 20500, training accuracy 0.98
step 20500, val accuracy 0.835
step 20550, training accuracy 0.975
step 20550, val accuracy 0.79
step 20600, training accuracy 0.965
step 20600, val accuracy 0.845
step 20650, training accuracy 0.99
step 20650, val accuracy 0.835
step 20700, training accuracy 0.985
step 20700, val accuracy 0.885
step 20750, training accuracy 0.965
step 20750, val accuracy 0.82
step 20800, training accuracy 0.975
step 20800, val accuracy 0.8
step 20850, training accuracy 0.97
step 20850, val accuracy 0.855
step 20900, training accuracy 0.97
step 20900, val accuracy 0.85
step 20950, training accuracy 0.965
step 20950, val accuracy 0.84
step 21000, training accuracy 0.98
step 21000, val accuracy 0.75
step 21050, training accuracy 0.97
step 21050, val accuracy 0.8
step 21100, training accuracy 0.975
step 21100, val accuracy 0.765
step 21150, training accuracy 0.975
step 21150, val accuracy 0.88
step 21200, training accuracy 0.99
step 21200, val accuracy 0.855
step 21250, training accuracy 0.955
step 21250, val accuracy 0.805
step 21300, training accuracy 0.98
step 21300, val accuracy 0.85
step 21350, training accuracy 0.97
step 21350, val accuracy 0.805
step 21400, training accuracy 0.975
step 21400, val accuracy 0.86
step 21450, training accuracy 0.975
step 21450, val accuracy 0.835
step 21500, training accuracy 0.98
step 21500, val accuracy 0.835
step 21550, training accuracy 0.975
step 21550, val accuracy 0.765
step 21600, training accuracy 0.98
step 21600, val accuracy 0.835
step 21650, training accuracy 0.97
step 21650, val accuracy 0.805
step 21700, training accuracy 0.965
step 21700, val accuracy 0.82
step 21750, training accuracy 0.975
step 21750, val accuracy 0.805
step 21800, training accuracy 0.95
step 21800, val accuracy 0.865
step 21850, training accuracy 0.985
step 21850, val accuracy 0.845
step 21900, training accuracy 0.97
step 21900, val accuracy 0.81
step 21950, training accuracy 0.985
step 21950, val accuracy 0.8
step 22000, training accuracy 0.96
step 22000, val accuracy 0.805
step 22050, training accuracy 0.975
step 22050, val accuracy 0.825
step 22100, training accuracy 0.98
step 22100, val accuracy 0.91
step 22150, training accuracy 0.965
step 22150, val accuracy 0.8
step 22200, training accuracy 0.98
step 22200, val accuracy 0.8
step 22250, training accuracy 0.97
step 22250, val accuracy 0.84
step 22300, training accuracy 0.985
step 22300, val accuracy 0.85
step 22350, training accuracy 0.97
step 22350, val accuracy 0.83
step 22400, training accuracy 0.975
step 22400, val accuracy 0.845
step 22450, training accuracy 0.985
step 22450, val accuracy 0.85
step 22500, training accuracy 0.98
step 22500, val accuracy 0.815
step 22550, training accuracy 0.985
step 22550, val accuracy 0.845
step 22600, training accuracy 0.99
step 22600, val accuracy 0.825
step 22650, training accuracy 0.99
step 22650, val accuracy 0.85
step 22700, training accuracy 0.975
step 22700, val accuracy 0.855
step 22750, training accuracy 0.975
step 22750, val accuracy 0.81
step 22800, training accuracy 0.96
step 22800, val accuracy 0.85
step 22850, training accuracy 0.97
step 22850, val accuracy 0.825
step 22900, training accuracy 0.98
step 22900, val accuracy 0.77
step 22950, training accuracy 0.98
step 22950, val accuracy 0.84
step 23000, training accuracy 0.985
step 23000, val accuracy 0.86
step 23050, training accuracy 0.97
step 23050, val accuracy 0.81
step 23100, training accuracy 0.975
step 23100, val accuracy 0.845
step 23150, training accuracy 0.99
step 23150, val accuracy 0.85
step 23200, training accuracy 0.985
step 23200, val accuracy 0.87
step 23250, training accuracy 0.985
step 23250, val accuracy 0.83
step 23300, training accuracy 0.99
step 23300, val accuracy 0.8
step 23350, training accuracy 0.98
step 23350, val accuracy 0.825
step 23400, training accuracy 0.985
step 23400, val accuracy 0.83
step 23450, training accuracy 0.975
step 23450, val accuracy 0.83
step 23500, training accuracy 0.985
step 23500, val accuracy 0.825
step 23550, training accuracy 0.97
step 23550, val accuracy 0.78
step 23600, training accuracy 0.985
step 23600, val accuracy 0.815
step 23650, training accuracy 0.975
step 23650, val accuracy 0.86
step 23700, training accuracy 0.98
step 23700, val accuracy 0.82
step 23750, training accuracy 0.97
step 23750, val accuracy 0.825
step 23800, training accuracy 0.985
step 23800, val accuracy 0.87
step 23850, training accuracy 0.985
step 23850, val accuracy 0.84
step 23900, training accuracy 0.96
step 23900, val accuracy 0.865
step 23950, training accuracy 0.975
step 23950, val accuracy 0.805
step 24000, training accuracy 0.98
step 24000, val accuracy 0.81
step 24050, training accuracy 0.97
step 24050, val accuracy 0.805
step 24100, training accuracy 0.975
step 24100, val accuracy 0.895
step 24150, training accuracy 0.99
step 24150, val accuracy 0.86
step 24200, training accuracy 0.97
step 24200, val accuracy 0.835
step 24250, training accuracy 0.97
step 24250, val accuracy 0.83
step 24300, training accuracy 0.945
step 24300, val accuracy 0.835
step 24350, training accuracy 0.98
step 24350, val accuracy 0.75
step 24400, training accuracy 0.975
step 24400, val accuracy 0.85
step 24450, training accuracy 0.975
step 24450, val accuracy 0.84
step 24500, training accuracy 0.995
step 24500, val accuracy 0.81
step 24550, training accuracy 0.99
step 24550, val accuracy 0.815
step 24600, training accuracy 0.985
step 24600, val accuracy 0.8
step 24650, training accuracy 0.99
step 24650, val accuracy 0.765
step 24700, training accuracy 0.975
step 24700, val accuracy 0.79
step 24750, training accuracy 0.98
step 24750, val accuracy 0.82
step 24800, training accuracy 0.975
step 24800, val accuracy 0.8
step 24850, training accuracy 0.985
step 24850, val accuracy 0.835
step 24900, training accuracy 0.98
step 24900, val accuracy 0.82
step 24950, training accuracy 0.975
step 24950, val accuracy 0.86
step 25000, training accuracy 0.99
step 25000, val accuracy 0.895
step 25050, training accuracy 0.965
step 25050, val accuracy 0.795
step 25100, training accuracy 0.98
step 25100, val accuracy 0.82
step 25150, training accuracy 0.995
step 25150, val accuracy 0.81
step 25200, training accuracy 0.985
step 25200, val accuracy 0.785
step 25250, training accuracy 0.96
step 25250, val accuracy 0.86
step 25300, training accuracy 0.975
step 25300, val accuracy 0.835
step 25350, training accuracy 0.965
step 25350, val accuracy 0.805
step 25400, training accuracy 0.98
step 25400, val accuracy 0.835
step 25450, training accuracy 0.945
step 25450, val accuracy 0.805
step 25500, training accuracy 0.965
step 25500, val accuracy 0.815
step 25550, training accuracy 0.975
step 25550, val accuracy 0.825
step 25600, training accuracy 0.99
step 25600, val accuracy 0.85
step 25650, training accuracy 0.98
step 25650, val accuracy 0.82
step 25700, training accuracy 0.985
step 25700, val accuracy 0.835
step 25750, training accuracy 0.96
step 25750, val accuracy 0.85
step 25800, training accuracy 0.985
step 25800, val accuracy 0.88
step 25850, training accuracy 0.99
step 25850, val accuracy 0.81
step 25900, training accuracy 0.965
step 25900, val accuracy 0.805
step 25950, training accuracy 0.99
step 25950, val accuracy 0.8
step 26000, training accuracy 0.97
step 26000, val accuracy 0.845
step 26050, training accuracy 0.985
step 26050, val accuracy 0.83
step 26100, training accuracy 0.985
step 26100, val accuracy 0.87
step 26150, training accuracy 0.965
step 26150, val accuracy 0.81
step 26200, training accuracy 0.97
step 26200, val accuracy 0.805
step 26250, training accuracy 0.985
step 26250, val accuracy 0.785
step 26300, training accuracy 0.985
step 26300, val accuracy 0.865
step 26350, training accuracy 0.99
step 26350, val accuracy 0.845
step 26400, training accuracy 0.99
step 26400, val accuracy 0.855
step 26450, training accuracy 0.99
step 26450, val accuracy 0.86
step 26500, training accuracy 0.975
step 26500, val accuracy 0.82
step 26550, training accuracy 0.97
step 26550, val accuracy 0.815
step 26600, training accuracy 0.98
step 26600, val accuracy 0.845
step 26650, training accuracy 0.99
step 26650, val accuracy 0.83
step 26700, training accuracy 0.99
step 26700, val accuracy 0.86
step 26750, training accuracy 0.99
step 26750, val accuracy 0.755
step 26800, training accuracy 0.975
step 26800, val accuracy 0.8
step 26850, training accuracy 0.985
step 26850, val accuracy 0.845
step 26900, training accuracy 0.97
step 26900, val accuracy 0.79
step 26950, training accuracy 0.985
step 26950, val accuracy 0.82
step 27000, training accuracy 0.98
step 27000, val accuracy 0.855
step 27050, training accuracy 0.975
step 27050, val accuracy 0.8
step 27100, training accuracy 0.995
step 27100, val accuracy 0.835
step 27150, training accuracy 1
step 27150, val accuracy 0.825
step 27200, training accuracy 0.975
step 27200, val accuracy 0.81
step 27250, training accuracy 0.975
step 27250, val accuracy 0.835
step 27300, training accuracy 0.985
step 27300, val accuracy 0.845
step 27350, training accuracy 0.965
step 27350, val accuracy 0.805
step 27400, training accuracy 0.98
step 27400, val accuracy 0.785
step 27450, training accuracy 0.98
step 27450, val accuracy 0.84
step 27500, training accuracy 0.98
step 27500, val accuracy 0.825
step 27550, training accuracy 0.98
step 27550, val accuracy 0.79
step 27600, training accuracy 0.99
step 27600, val accuracy 0.875
step 27650, training accuracy 0.98
step 27650, val accuracy 0.85
step 27700, training accuracy 0.985
step 27700, val accuracy 0.88
step 27750, training accuracy 0.98
step 27750, val accuracy 0.84
step 27800, training accuracy 0.985
step 27800, val accuracy 0.825
step 27850, training accuracy 0.96
step 27850, val accuracy 0.86
step 27900, training accuracy 0.99
step 27900, val accuracy 0.845
step 27950, training accuracy 0.975
step 27950, val accuracy 0.825
step 28000, training accuracy 0.965
step 28000, val accuracy 0.845
step 28050, training accuracy 0.985
step 28050, val accuracy 0.82
step 28100, training accuracy 0.99
step 28100, val accuracy 0.815
step 28150, training accuracy 0.985
step 28150, val accuracy 0.835
step 28200, training accuracy 0.99
step 28200, val accuracy 0.835
step 28250, training accuracy 0.98
step 28250, val accuracy 0.84
step 28300, training accuracy 0.975
step 28300, val accuracy 0.81
step 28350, training accuracy 0.98
step 28350, val accuracy 0.845
step 28400, training accuracy 0.99
step 28400, val accuracy 0.8
step 28450, training accuracy 0.985
step 28450, val accuracy 0.825
step 28500, training accuracy 0.995
step 28500, val accuracy 0.845
step 28550, training accuracy 0.99
step 28550, val accuracy 0.865
step 28600, training accuracy 0.98
step 28600, val accuracy 0.82
step 28650, training accuracy 0.99
step 28650, val accuracy 0.84
step 28700, training accuracy 0.985
step 28700, val accuracy 0.87
step 28750, training accuracy 0.985
step 28750, val accuracy 0.825
step 28800, training accuracy 0.98
step 28800, val accuracy 0.795
step 28850, training accuracy 0.985
step 28850, val accuracy 0.825
step 28900, training accuracy 0.98
step 28900, val accuracy 0.825
step 28950, training accuracy 0.98
step 28950, val accuracy 0.845
step 29000, training accuracy 0.975
step 29000, val accuracy 0.78
step 29050, training accuracy 0.985
step 29050, val accuracy 0.81
step 29100, training accuracy 0.985
step 29100, val accuracy 0.835
step 29150, training accuracy 0.985
step 29150, val accuracy 0.815
step 29200, training accuracy 0.995
step 29200, val accuracy 0.805
step 29250, training accuracy 0.995
step 29250, val accuracy 0.825
step 29300, training accuracy 0.985
step 29300, val accuracy 0.85
step 29350, training accuracy 0.985
step 29350, val accuracy 0.815
step 29400, training accuracy 0.985
step 29400, val accuracy 0.805
step 29450, training accuracy 0.985
step 29450, val accuracy 0.81
step 29500, training accuracy 0.985
step 29500, val accuracy 0.81
step 29550, training accuracy 0.985
step 29550, val accuracy 0.78
step 29600, training accuracy 0.985
step 29600, val accuracy 0.82
step 29650, training accuracy 0.99
step 29650, val accuracy 0.825
step 29700, training accuracy 0.985
step 29700, val accuracy 0.82
step 29750, training accuracy 0.985
step 29750, val accuracy 0.8
step 29800, training accuracy 0.965
step 29800, val accuracy 0.845
step 29850, training accuracy 0.99
step 29850, val accuracy 0.825
step 29900, training accuracy 0.985
step 29900, val accuracy 0.8
step 29950, training accuracy 0.985
step 29950, val accuracy 0.8
step 30000, training accuracy 0.985
step 30000, val accuracy 0.805
step 30050, training accuracy 0.98
step 30050, val accuracy 0.795
step 30100, training accuracy 0.985
step 30100, val accuracy 0.865
step 30150, training accuracy 0.99
step 30150, val accuracy 0.84
step 30200, training accuracy 1
step 30200, val accuracy 0.845
step 30250, training accuracy 1
step 30250, val accuracy 0.855
step 30300, training accuracy 0.985
step 30300, val accuracy 0.84
step 30350, training accuracy 0.995
step 30350, val accuracy 0.815
step 30400, training accuracy 0.985
step 30400, val accuracy 0.82
step 30450, training accuracy 0.99
step 30450, val accuracy 0.855
step 30500, training accuracy 0.99
step 30500, val accuracy 0.855
step 30550, training accuracy 0.965
step 30550, val accuracy 0.845
step 30600, training accuracy 0.98
step 30600, val accuracy 0.83
step 30650, training accuracy 0.97
step 30650, val accuracy 0.865
step 30700, training accuracy 0.99
step 30700, val accuracy 0.81
step 30750, training accuracy 0.99
step 30750, val accuracy 0.795
step 30800, training accuracy 0.99
step 30800, val accuracy 0.85
step 30850, training accuracy 0.99
step 30850, val accuracy 0.79
step 30900, training accuracy 0.97
step 30900, val accuracy 0.825
step 30950, training accuracy 0.995
step 30950, val accuracy 0.845
step 31000, training accuracy 0.99
step 31000, val accuracy 0.825
step 31050, training accuracy 0.985
step 31050, val accuracy 0.82
step 31100, training accuracy 0.995
step 31100, val accuracy 0.875
step 31150, training accuracy 0.985
step 31150, val accuracy 0.82
step 31200, training accuracy 0.975
step 31200, val accuracy 0.82
step 31250, training accuracy 0.985
step 31250, val accuracy 0.85
step 31300, training accuracy 0.97
step 31300, val accuracy 0.84
step 31350, training accuracy 0.99
step 31350, val accuracy 0.865
step 31400, training accuracy 0.98
step 31400, val accuracy 0.855
step 31450, training accuracy 1
step 31450, val accuracy 0.805
step 31500, training accuracy 0.99
step 31500, val accuracy 0.845
step 31550, training accuracy 0.99
step 31550, val accuracy 0.85
step 31600, training accuracy 0.98
step 31600, val accuracy 0.835
step 31650, training accuracy 0.99
step 31650, val accuracy 0.79
step 31700, training accuracy 0.99
step 31700, val accuracy 0.845
step 31750, training accuracy 0.98
step 31750, val accuracy 0.83
step 31800, training accuracy 0.98
step 31800, val accuracy 0.86
step 31850, training accuracy 0.985
step 31850, val accuracy 0.81
step 31900, training accuracy 0.995
step 31900, val accuracy 0.775
step 31950, training accuracy 0.98
step 31950, val accuracy 0.835
step 32000, training accuracy 0.98
step 32000, val accuracy 0.83
step 32050, training accuracy 0.995
step 32050, val accuracy 0.84
step 32100, training accuracy 0.985
step 32100, val accuracy 0.85
step 32150, training accuracy 0.98
step 32150, val accuracy 0.825
step 32200, training accuracy 0.99
step 32200, val accuracy 0.88
step 32250, training accuracy 0.995
step 32250, val accuracy 0.825
step 32300, training accuracy 0.98
step 32300, val accuracy 0.765
step 32350, training accuracy 0.985
step 32350, val accuracy 0.79
step 32400, training accuracy 0.99
step 32400, val accuracy 0.85
step 32450, training accuracy 0.99
step 32450, val accuracy 0.795
step 32500, training accuracy 0.985
step 32500, val accuracy 0.815
step 32550, training accuracy 0.995
step 32550, val accuracy 0.795
step 32600, training accuracy 0.995
step 32600, val accuracy 0.845
step 32650, training accuracy 0.985
step 32650, val accuracy 0.82
step 32700, training accuracy 0.99
step 32700, val accuracy 0.805
step 32750, training accuracy 0.995
step 32750, val accuracy 0.815
step 32800, training accuracy 0.995
step 32800, val accuracy 0.81
step 32850, training accuracy 0.985
step 32850, val accuracy 0.765
step 32900, training accuracy 0.995
step 32900, val accuracy 0.85
step 32950, training accuracy 0.995
step 32950, val accuracy 0.79
step 33000, training accuracy 0.99
step 33000, val accuracy 0.815
step 33050, training accuracy 0.99
step 33050, val accuracy 0.815
step 33100, training accuracy 0.99
step 33100, val accuracy 0.84
step 33150, training accuracy 0.99
step 33150, val accuracy 0.85
step 33200, training accuracy 0.98
step 33200, val accuracy 0.8
step 33250, training accuracy 0.99
step 33250, val accuracy 0.8
step 33300, training accuracy 0.985
step 33300, val accuracy 0.84
step 33350, training accuracy 0.98
step 33350, val accuracy 0.83
step 33400, training accuracy 0.99
step 33400, val accuracy 0.85
step 33450, training accuracy 1
step 33450, val accuracy 0.85
step 33500, training accuracy 0.975
step 33500, val accuracy 0.87
step 33550, training accuracy 0.98
step 33550, val accuracy 0.825
step 33600, training accuracy 0.99
step 33600, val accuracy 0.8
step 33650, training accuracy 0.995
step 33650, val accuracy 0.845
step 33700, training accuracy 0.995
step 33700, val accuracy 0.83
step 33750, training accuracy 0.98
step 33750, val accuracy 0.815
step 33800, training accuracy 1
step 33800, val accuracy 0.86
step 33850, training accuracy 0.98
step 33850, val accuracy 0.85
step 33900, training accuracy 0.965
step 33900, val accuracy 0.8
step 33950, training accuracy 0.98
step 33950, val accuracy 0.805
step 34000, training accuracy 0.98
step 34000, val accuracy 0.83
step 34050, training accuracy 0.99
step 34050, val accuracy 0.885
step 34100, training accuracy 0.99
step 34100, val accuracy 0.835
step 34150, training accuracy 0.99
step 34150, val accuracy 0.79
step 34200, training accuracy 0.995
step 34200, val accuracy 0.82
step 34250, training accuracy 0.985
step 34250, val accuracy 0.81
step 34300, training accuracy 1
step 34300, val accuracy 0.81
step 34350, training accuracy 0.985
step 34350, val accuracy 0.845
step 34400, training accuracy 1
step 34400, val accuracy 0.82
step 34450, training accuracy 0.985
step 34450, val accuracy 0.83
step 34500, training accuracy 0.975
step 34500, val accuracy 0.84
step 34550, training accuracy 0.985
step 34550, val accuracy 0.81
step 34600, training accuracy 0.98
step 34600, val accuracy 0.875
step 34650, training accuracy 0.99
step 34650, val accuracy 0.83
step 34700, training accuracy 0.98
step 34700, val accuracy 0.85
step 34750, training accuracy 0.99
step 34750, val accuracy 0.85
step 34800, training accuracy 0.985
step 34800, val accuracy 0.845
step 34850, training accuracy 0.99
step 34850, val accuracy 0.88
step 34900, training accuracy 0.995
step 34900, val accuracy 0.87
step 34950, training accuracy 0.985
step 34950, val accuracy 0.85
step 35000, training accuracy 0.99
step 35000, val accuracy 0.82
step 35050, training accuracy 1
step 35050, val accuracy 0.81
step 35100, training accuracy 0.99
step 35100, val accuracy 0.825
step 35150, training accuracy 0.995
step 35150, val accuracy 0.805
step 35200, training accuracy 0.975
step 35200, val accuracy 0.825
step 35250, training accuracy 1
step 35250, val accuracy 0.85
step 35300, training accuracy 1
step 35300, val accuracy 0.84
step 35350, training accuracy 1
step 35350, val accuracy 0.84
step 35400, training accuracy 0.985
step 35400, val accuracy 0.815
step 35450, training accuracy 0.985
step 35450, val accuracy 0.84
step 35500, training accuracy 0.99
step 35500, val accuracy 0.805
step 35550, training accuracy 0.99
step 35550, val accuracy 0.865
step 35600, training accuracy 0.995
step 35600, val accuracy 0.84
step 35650, training accuracy 0.985
step 35650, val accuracy 0.85
step 35700, training accuracy 0.985
step 35700, val accuracy 0.84
step 35750, training accuracy 0.98
step 35750, val accuracy 0.84
step 35800, training accuracy 0.995
step 35800, val accuracy 0.855
step 35850, training accuracy 0.975
step 35850, val accuracy 0.79
step 35900, training accuracy 1
step 35900, val accuracy 0.835
step 35950, training accuracy 1
step 35950, val accuracy 0.81
step 36000, training accuracy 0.995
step 36000, val accuracy 0.835
step 36050, training accuracy 0.995
step 36050, val accuracy 0.835
step 36100, training accuracy 0.985
step 36100, val accuracy 0.87
step 36150, training accuracy 0.99
step 36150, val accuracy 0.875
step 36200, training accuracy 0.97
step 36200, val accuracy 0.81
step 36250, training accuracy 0.99
step 36250, val accuracy 0.85
step 36300, training accuracy 0.985
step 36300, val accuracy 0.81
step 36350, training accuracy 0.995
step 36350, val accuracy 0.81
step 36400, training accuracy 1
step 36400, val accuracy 0.82
step 36450, training accuracy 0.99
step 36450, val accuracy 0.745
step 36500, training accuracy 0.99
step 36500, val accuracy 0.825
step 36550, training accuracy 0.99
step 36550, val accuracy 0.795
step 36600, training accuracy 0.985
step 36600, val accuracy 0.825
step 36650, training accuracy 0.99
step 36650, val accuracy 0.87
step 36700, training accuracy 0.995
step 36700, val accuracy 0.825
step 36750, training accuracy 0.995
step 36750, val accuracy 0.76
step 36800, training accuracy 0.985
step 36800, val accuracy 0.84
step 36850, training accuracy 1
step 36850, val accuracy 0.82
step 36900, training accuracy 0.995
step 36900, val accuracy 0.8
step 36950, training accuracy 0.985
step 36950, val accuracy 0.845
step 37000, training accuracy 0.99
step 37000, val accuracy 0.795
step 37050, training accuracy 0.99
step 37050, val accuracy 0.84
step 37100, training accuracy 0.98
step 37100, val accuracy 0.81
step 37150, training accuracy 0.985
step 37150, val accuracy 0.825
step 37200, training accuracy 0.995
step 37200, val accuracy 0.855
step 37250, training accuracy 0.99
step 37250, val accuracy 0.785
step 37300, training accuracy 1
step 37300, val accuracy 0.84
step 37350, training accuracy 0.995
step 37350, val accuracy 0.83
step 37400, training accuracy 0.99
step 37400, val accuracy 0.83
step 37450, training accuracy 0.995
step 37450, val accuracy 0.885
step 37500, training accuracy 0.985
step 37500, val accuracy 0.865
step 37550, training accuracy 0.985
step 37550, val accuracy 0.815
step 37600, training accuracy 0.995
step 37600, val accuracy 0.835
step 37650, training accuracy 0.99
step 37650, val accuracy 0.825
step 37700, training accuracy 0.99
step 37700, val accuracy 0.815
step 37750, training accuracy 0.99
step 37750, val accuracy 0.795
step 37800, training accuracy 0.99
step 37800, val accuracy 0.835
step 37850, training accuracy 0.98
step 37850, val accuracy 0.815
step 37900, training accuracy 0.98
step 37900, val accuracy 0.805
step 37950, training accuracy 0.98
step 37950, val accuracy 0.77
step 38000, training accuracy 0.995
step 38000, val accuracy 0.82
step 38050, training accuracy 0.985
step 38050, val accuracy 0.83
step 38100, training accuracy 0.99
step 38100, val accuracy 0.84
step 38150, training accuracy 0.99
step 38150, val accuracy 0.825
step 38200, training accuracy 0.995
step 38200, val accuracy 0.79
step 38250, training accuracy 0.985
step 38250, val accuracy 0.81
step 38300, training accuracy 0.995
step 38300, val accuracy 0.805
step 38350, training accuracy 0.99
step 38350, val accuracy 0.88
step 38400, training accuracy 0.995
step 38400, val accuracy 0.825
step 38450, training accuracy 1
step 38450, val accuracy 0.825
step 38500, training accuracy 0.985
step 38500, val accuracy 0.855
step 38550, training accuracy 1
step 38550, val accuracy 0.855
step 38600, training accuracy 0.995
step 38600, val accuracy 0.83
step 38650, training accuracy 0.985
step 38650, val accuracy 0.815
step 38700, training accuracy 0.985
step 38700, val accuracy 0.83
step 38750, training accuracy 0.99
step 38750, val accuracy 0.82
step 38800, training accuracy 0.995
step 38800, val accuracy 0.8
step 38850, training accuracy 0.99
step 38850, val accuracy 0.84
step 38900, training accuracy 0.985
step 38900, val accuracy 0.88
step 38950, training accuracy 1
step 38950, val accuracy 0.765
step 39000, training accuracy 0.995
step 39000, val accuracy 0.83
step 39050, training accuracy 0.99
step 39050, val accuracy 0.805
step 39100, training accuracy 0.995
step 39100, val accuracy 0.825
step 39150, training accuracy 0.99
step 39150, val accuracy 0.785
step 39200, training accuracy 0.995
step 39200, val accuracy 0.805
step 39250, training accuracy 1
step 39250, val accuracy 0.825
step 39300, training accuracy 0.98
step 39300, val accuracy 0.81
step 39350, training accuracy 0.99
step 39350, val accuracy 0.775
step 39400, training accuracy 0.99
step 39400, val accuracy 0.85
step 39450, training accuracy 0.995
step 39450, val accuracy 0.815
step 39500, training accuracy 0.98
step 39500, val accuracy 0.815
step 39550, training accuracy 0.985
step 39550, val accuracy 0.845
step 39600, training accuracy 0.99
step 39600, val accuracy 0.845
step 39650, training accuracy 0.995
step 39650, val accuracy 0.82
step 39700, training accuracy 0.995
step 39700, val accuracy 0.84
step 39750, training accuracy 0.985
step 39750, val accuracy 0.805
step 39800, training accuracy 0.985
step 39800, val accuracy 0.79
step 39850, training accuracy 0.995
step 39850, val accuracy 0.81
step 39900, training accuracy 0.995
step 39900, val accuracy 0.8
step 39950, training accuracy 0.99
step 39950, val accuracy 0.825
step 40000, training accuracy 0.98
step 40000, val accuracy 0.805
step 40050, training accuracy 0.995
step 40050, val accuracy 0.815
step 40100, training accuracy 0.99
step 40100, val accuracy 0.81
step 40150, training accuracy 0.985
step 40150, val accuracy 0.83
step 40200, training accuracy 0.995
step 40200, val accuracy 0.78
step 40250, training accuracy 1
step 40250, val accuracy 0.84
step 40300, training accuracy 1
step 40300, val accuracy 0.875
step 40350, training accuracy 0.995
step 40350, val accuracy 0.845
step 40400, training accuracy 0.995
step 40400, val accuracy 0.845
step 40450, training accuracy 0.99
step 40450, val accuracy 0.785
step 40500, training accuracy 0.995
step 40500, val accuracy 0.845
step 40550, training accuracy 0.985
step 40550, val accuracy 0.85
step 40600, training accuracy 0.995
step 40600, val accuracy 0.835
step 40650, training accuracy 0.985
step 40650, val accuracy 0.78
step 40700, training accuracy 0.99
step 40700, val accuracy 0.79
step 40750, training accuracy 0.99
step 40750, val accuracy 0.82
step 40800, training accuracy 0.99
step 40800, val accuracy 0.835
step 40850, training accuracy 0.995
step 40850, val accuracy 0.815
step 40900, training accuracy 0.995
step 40900, val accuracy 0.84
step 40950, training accuracy 0.995
step 40950, val accuracy 0.85
step 41000, training accuracy 1
step 41000, val accuracy 0.82
step 41050, training accuracy 1
step 41050, val accuracy 0.845
step 41100, training accuracy 1
step 41100, val accuracy 0.815
step 41150, training accuracy 0.99
step 41150, val accuracy 0.83
step 41200, training accuracy 0.98
step 41200, val accuracy 0.83
step 41250, training accuracy 1
step 41250, val accuracy 0.88
step 41300, training accuracy 1
step 41300, val accuracy 0.79
step 41350, training accuracy 0.99
step 41350, val accuracy 0.84
step 41400, training accuracy 1
step 41400, val accuracy 0.815
step 41450, training accuracy 0.985
step 41450, val accuracy 0.87
step 41500, training accuracy 0.995
step 41500, val accuracy 0.86
step 41550, training accuracy 0.99
step 41550, val accuracy 0.86
step 41600, training accuracy 0.995
step 41600, val accuracy 0.845
step 41650, training accuracy 0.995
step 41650, val accuracy 0.82
step 41700, training accuracy 0.99
step 41700, val accuracy 0.78
step 41750, training accuracy 0.995
step 41750, val accuracy 0.815
step 41800, training accuracy 0.985
step 41800, val accuracy 0.805
step 41850, training accuracy 1
step 41850, val accuracy 0.86
step 41900, training accuracy 0.995
step 41900, val accuracy 0.865
step 41950, training accuracy 1
step 41950, val accuracy 0.86
step 42000, training accuracy 0.995
step 42000, val accuracy 0.85
step 42050, training accuracy 0.985
step 42050, val accuracy 0.785
step 42100, training accuracy 1
step 42100, val accuracy 0.785
step 42150, training accuracy 1
step 42150, val accuracy 0.85
step 42200, training accuracy 0.985
step 42200, val accuracy 0.805
step 42250, training accuracy 0.99
step 42250, val accuracy 0.795
step 42300, training accuracy 1
step 42300, val accuracy 0.86
step 42350, training accuracy 0.995
step 42350, val accuracy 0.835
step 42400, training accuracy 0.99
step 42400, val accuracy 0.795
step 42450, training accuracy 0.995
step 42450, val accuracy 0.82
step 42500, training accuracy 0.995
step 42500, val accuracy 0.79
step 42550, training accuracy 0.995
step 42550, val accuracy 0.845
step 42600, training accuracy 1
step 42600, val accuracy 0.815
step 42650, training accuracy 1
step 42650, val accuracy 0.835
step 42700, training accuracy 0.99
step 42700, val accuracy 0.805
step 42750, training accuracy 0.99
step 42750, val accuracy 0.87
step 42800, training accuracy 0.99
step 42800, val accuracy 0.84
step 42850, training accuracy 0.99
step 42850, val accuracy 0.88
step 42900, training accuracy 0.995
step 42900, val accuracy 0.85
step 42950, training accuracy 0.985
step 42950, val accuracy 0.85
step 43000, training accuracy 0.995
step 43000, val accuracy 0.825
step 43050, training accuracy 0.99
step 43050, val accuracy 0.855
step 43100, training accuracy 0.995
step 43100, val accuracy 0.87
step 43150, training accuracy 0.975
step 43150, val accuracy 0.82
step 43200, training accuracy 0.99
step 43200, val accuracy 0.845
step 43250, training accuracy 0.985
step 43250, val accuracy 0.91
step 43300, training accuracy 0.995
step 43300, val accuracy 0.845
step 43350, training accuracy 0.99
step 43350, val accuracy 0.835
step 43400, training accuracy 0.99
step 43400, val accuracy 0.825
step 43450, training accuracy 0.985
step 43450, val accuracy 0.87
step 43500, training accuracy 1
step 43500, val accuracy 0.85
step 43550, training accuracy 0.995
step 43550, val accuracy 0.815
step 43600, training accuracy 0.995
step 43600, val accuracy 0.83
step 43650, training accuracy 0.985
step 43650, val accuracy 0.835
step 43700, training accuracy 0.995
step 43700, val accuracy 0.795
step 43750, training accuracy 0.995
step 43750, val accuracy 0.805
step 43800, training accuracy 0.99
step 43800, val accuracy 0.87
step 43850, training accuracy 1
step 43850, val accuracy 0.885
step 43900, training accuracy 0.985
step 43900, val accuracy 0.82
step 43950, training accuracy 0.99
step 43950, val accuracy 0.85
step 44000, training accuracy 1
step 44000, val accuracy 0.84
step 44050, training accuracy 1
step 44050, val accuracy 0.805
step 44100, training accuracy 0.99
step 44100, val accuracy 0.875
step 44150, training accuracy 0.98
step 44150, val accuracy 0.79
step 44200, training accuracy 0.985
step 44200, val accuracy 0.835
step 44250, training accuracy 0.995
step 44250, val accuracy 0.835
step 44300, training accuracy 0.995
step 44300, val accuracy 0.86
step 44350, training accuracy 0.995
step 44350, val accuracy 0.835
step 44400, training accuracy 1
step 44400, val accuracy 0.835
step 44450, training accuracy 1
step 44450, val accuracy 0.82
step 44500, training accuracy 1
step 44500, val accuracy 0.81
step 44550, training accuracy 0.995
step 44550, val accuracy 0.795
step 44600, training accuracy 0.99
step 44600, val accuracy 0.81
step 44650, training accuracy 1
step 44650, val accuracy 0.81
step 44700, training accuracy 1
step 44700, val accuracy 0.785
step 44750, training accuracy 0.995
step 44750, val accuracy 0.835
step 44800, training accuracy 1
step 44800, val accuracy 0.835
step 44850, training accuracy 0.995
step 44850, val accuracy 0.84
step 44900, training accuracy 0.995
step 44900, val accuracy 0.865
step 44950, training accuracy 0.99
step 44950, val accuracy 0.85
step 45000, training accuracy 0.995
step 45000, val accuracy 0.805
step 45050, training accuracy 0.995
step 45050, val accuracy 0.795
step 45100, training accuracy 0.995
step 45100, val accuracy 0.85
step 45150, training accuracy 0.995
step 45150, val accuracy 0.81
step 45200, training accuracy 0.985
step 45200, val accuracy 0.815
step 45250, training accuracy 0.995
step 45250, val accuracy 0.845
step 45300, training accuracy 0.985
step 45300, val accuracy 0.835
step 45350, training accuracy 1
step 45350, val accuracy 0.87
step 45400, training accuracy 0.99
step 45400, val accuracy 0.77
step 45450, training accuracy 0.98
step 45450, val accuracy 0.84
step 45500, training accuracy 0.995
step 45500, val accuracy 0.865
step 45550, training accuracy 1
step 45550, val accuracy 0.8
step 45600, training accuracy 0.985
step 45600, val accuracy 0.84
step 45650, training accuracy 1
step 45650, val accuracy 0.835
step 45700, training accuracy 0.995
step 45700, val accuracy 0.82
step 45750, training accuracy 1
step 45750, val accuracy 0.805
step 45800, training accuracy 0.99
step 45800, val accuracy 0.845
step 45850, training accuracy 0.99
step 45850, val accuracy 0.81
step 45900, training accuracy 0.99
step 45900, val accuracy 0.86
step 45950, training accuracy 1
step 45950, val accuracy 0.825
step 46000, training accuracy 0.99
step 46000, val accuracy 0.835
step 46050, training accuracy 0.975
step 46050, val accuracy 0.85
step 46100, training accuracy 1
step 46100, val accuracy 0.86
step 46150, training accuracy 0.995
step 46150, val accuracy 0.825
step 46200, training accuracy 1
step 46200, val accuracy 0.87
step 46250, training accuracy 1
step 46250, val accuracy 0.84
step 46300, training accuracy 0.99
step 46300, val accuracy 0.85
step 46350, training accuracy 1
step 46350, val accuracy 0.85
step 46400, training accuracy 0.99
step 46400, val accuracy 0.87
step 46450, training accuracy 0.99
step 46450, val accuracy 0.795
step 46500, training accuracy 1
step 46500, val accuracy 0.805
step 46550, training accuracy 0.995
step 46550, val accuracy 0.83
step 46600, training accuracy 0.99
step 46600, val accuracy 0.85
step 46650, training accuracy 0.99
step 46650, val accuracy 0.855
step 46700, training accuracy 0.995
step 46700, val accuracy 0.845
step 46750, training accuracy 0.985
step 46750, val accuracy 0.86
step 46800, training accuracy 0.975
step 46800, val accuracy 0.82
step 46850, training accuracy 0.985
step 46850, val accuracy 0.865
step 46900, training accuracy 0.995
step 46900, val accuracy 0.795
step 46950, training accuracy 0.995
step 46950, val accuracy 0.865
step 47000, training accuracy 1
step 47000, val accuracy 0.845
step 47050, training accuracy 0.995
step 47050, val accuracy 0.83
step 47100, training accuracy 0.995
step 47100, val accuracy 0.8
step 47150, training accuracy 1
step 47150, val accuracy 0.825
step 47200, training accuracy 0.985
step 47200, val accuracy 0.82
step 47250, training accuracy 0.99
step 47250, val accuracy 0.845
step 47300, training accuracy 1
step 47300, val accuracy 0.81
step 47350, training accuracy 0.99
step 47350, val accuracy 0.845
step 47400, training accuracy 0.995
step 47400, val accuracy 0.84
step 47450, training accuracy 0.99
step 47450, val accuracy 0.895
step 47500, training accuracy 0.99
step 47500, val accuracy 0.79
step 47550, training accuracy 1
step 47550, val accuracy 0.8
step 47600, training accuracy 1
step 47600, val accuracy 0.8
step 47650, training accuracy 0.99
step 47650, val accuracy 0.82
step 47700, training accuracy 0.995
step 47700, val accuracy 0.82
step 47750, training accuracy 0.995
step 47750, val accuracy 0.845
step 47800, training accuracy 0.965
step 47800, val accuracy 0.815
step 47850, training accuracy 1
step 47850, val accuracy 0.835
step 47900, training accuracy 0.995
step 47900, val accuracy 0.83
step 47950, training accuracy 0.985
step 47950, val accuracy 0.835
step 48000, training accuracy 0.99
step 48000, val accuracy 0.75
step 48050, training accuracy 0.995
step 48050, val accuracy 0.845
step 48100, training accuracy 0.995
step 48100, val accuracy 0.81
step 48150, training accuracy 0.99
step 48150, val accuracy 0.845
step 48200, training accuracy 0.995
step 48200, val accuracy 0.84
step 48250, training accuracy 0.99
step 48250, val accuracy 0.83
step 48300, training accuracy 0.995
step 48300, val accuracy 0.785
step 48350, training accuracy 0.995
step 48350, val accuracy 0.805
step 48400, training accuracy 0.975
step 48400, val accuracy 0.84
step 48450, training accuracy 0.99
step 48450, val accuracy 0.84
step 48500, training accuracy 1
step 48500, val accuracy 0.81
step 48550, training accuracy 0.995
step 48550, val accuracy 0.825
step 48600, training accuracy 1
step 48600, val accuracy 0.835
step 48650, training accuracy 0.975
step 48650, val accuracy 0.85
step 48700, training accuracy 1
step 48700, val accuracy 0.835
step 48750, training accuracy 0.995
step 48750, val accuracy 0.825
step 48800, training accuracy 0.99
step 48800, val accuracy 0.82
step 48850, training accuracy 0.99
step 48850, val accuracy 0.85
step 48900, training accuracy 0.99
step 48900, val accuracy 0.805
step 48950, training accuracy 0.97
step 48950, val accuracy 0.875
step 49000, training accuracy 0.985
step 49000, val accuracy 0.8
step 49050, training accuracy 0.995
step 49050, val accuracy 0.81
step 49100, training accuracy 0.99
step 49100, val accuracy 0.805
step 49150, training accuracy 0.995
step 49150, val accuracy 0.83
step 49200, training accuracy 0.985
step 49200, val accuracy 0.845
step 49250, training accuracy 0.99
step 49250, val accuracy 0.84
step 49300, training accuracy 0.985
step 49300, val accuracy 0.79
step 49350, training accuracy 0.995
step 49350, val accuracy 0.765
step 49400, training accuracy 1
step 49400, val accuracy 0.835
step 49450, training accuracy 0.995
step 49450, val accuracy 0.81
step 49500, training accuracy 1
step 49500, val accuracy 0.845
step 49550, training accuracy 1
step 49550, val accuracy 0.845
step 49600, training accuracy 1
step 49600, val accuracy 0.835
step 49650, training accuracy 1
step 49650, val accuracy 0.795
step 49700, training accuracy 0.99
step 49700, val accuracy 0.845
step 49750, training accuracy 0.99
step 49750, val accuracy 0.805
step 49800, training accuracy 0.995
step 49800, val accuracy 0.785
step 49850, training accuracy 0.99
step 49850, val accuracy 0.85
step 49900, training accuracy 0.975
step 49900, val accuracy 0.825
step 49950, training accuracy 0.995
step 49950, val accuracy 0.81

In [22]:
fig, ax = plt.subplots()

ax.plot(range(0,len(tr_acc)*summary_frequency,summary_frequency),tr_acc, label='Training')
ax.plot(range(0,len(ts_acc)*summary_frequency,summary_frequency),ts_acc, label='Validation')
ax.set_xlabel('Training steps')
ax.set_ylabel('Accuracy')
ax.set_ylim([0,1])
ax.set_title('Batch Normalization Accuracy')
ax.legend(loc=4)
plt.show()



In [ ]: